/*
 * Elemento.h - Grupo 5 - Prog. Avanzada 2011
 *
 *  Javier Dominguez - 4.901.161-6
 *  Marcelo Parada - 1.977.094-9
 *  Rodrigo Ruiz - 4.481.611-2
 *  Maximiliano Silvera - 4.106.938-6
 */

#ifndef ELEMENTO_H_
#define ELEMENTO_H_

#include <string>
#include "../util/collections/ICollectible.h"

using namespace std;

class Elemento: public ICollectible
{
public:
	Elemento();

	// Metodo abstracto a implementar por sus hijos (Artista, Album, Tema)
	virtual int tipoElemento() = 0;

	// Heredado de icollectible, debe implementarse por sus hijos
	virtual bool same(ICollectible*) = 0;

	// Heredado de icollectible, debe implementarse por sus hijos
	virtual string toString() = 0;

	virtual ~Elemento();
};

#endif /* ELEMENTO_H_ */
